package course.d1225;

import java.io.*;
import java.util.Map;
import java.util.Properties;

/*
     Properties extends Hashtable<Object,Object>集合
     Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
     构造方法：
     Properties()
          创建一个无默认值的空属性列表。
     Properties(Properties defaults)
          创建一个带有指定默认值的空属性列表。
     成员方法：
     1.public String getProperty(String key)；
     用指定的键在此属性列表中搜索属性。如果在此属性列表中未找到该键，则接着递归检查默认属性列表及其默认值。
     如果未找到属性，则此方法返回 null。
     2.public String getProperty(String key,String value)；
     用指定的键在属性列表中搜索属性。如果在属性列表中未找到该键，则接着递归检查默认属性列表及其默认值。
     如果未找到属性，则此方法返回默认值变量。

     3.public void store(OutputStream out,String comments)throws IOException
     把集合中的数据写入文件中            comments:注释
     4.public void load(InputStream inStream)throws IOException
     从输入流中读取属性列表（键和元素对）。

 */
public class p3 {
    public static void main(String[] args) {
        //创建Properties集合
        Properties pro  = new Properties();
        pro.setProperty("101","111");
        pro.setProperty("102","222");
        pro.setProperty("103","333");
//        try (FileOutputStream fis = new FileOutputStream("hello.properties")) {
//            pro.store(fis,"");
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        try {
            pro.store(new FileOutputStream("hello.properties"),"00000");
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            pro.load(new FileInputStream("hello.properties"));
            for (Map.Entry<Object, Object> entry : pro.entrySet()) {
                System.out.println(entry);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
